package 二叉树相关问题.中度题;

public class 节点与其祖先之间的最大差值 {
    int res=0;
    public int maxAncestorDiff(TreeNode root) {
        if (root==null)
            return 0;
        helper(root,root.val,root.val);
        return res;
    }

    private void helper(TreeNode root, int max, int min) {
        if (root==null)
            return;
        max=Math.max(max,root.val);
        min=Math.min(min,root.val);
        //到达叶子结点
        if (root.left==null && root.right==null)
            res=Math.max(res,max-min);
        helper(root.left,max,min);
        helper(root.right,max,min);
    }
}
